/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Fachada;

import Interface.iControlNegocios;
import Utileria.Localidades;
import Utileria.Profesiones;
import fachada.metodosPagoFachada;
import interfaces.iArrendadores;
import interfaces.iGestionResidentes;
import interfaces.iMetodosPago;
import java.util.List;
import nivelNegocio.NegociosException;
import objetosNegocio.Arrendador;
import objetosNegocio.MetodoPago;
import objetosNegocio.Residente;

/**
 *
 * @author Christian
 */
public class controlFachada implements iControlNegocios {

    private iGestionResidentes residentes;
    private iArrendadores arrendadores;
    private iMetodosPago metodosPago;
    private Localidades localidades;
    private Profesiones prof;

    public controlFachada() {
        residentes = new gestionResidentesFachada();
        arrendadores = new ArrendadoresFachada();
        metodosPago = new metodosPagoFachada();
        localidades = new Localidades();
        prof = new Profesiones();
    }

    @Override
    public void actualizarResidente(objetosNegocio.Residente residente) throws NegociosException {
        residentes.actualizarResidente(residente);
    }

    @Override
    public int agregarArrendador(objetosNegocio.Arrendador arrendador) throws NegociosException {
        return arrendadores.agregarArrendador(arrendador);
    }

    @Override
    public void agregarResidente(objetosNegocio.Residente residente) throws NegociosException {
        residentes.agregarResidente(residente);
    }

    @Override
    public void actualizarArrendador(Arrendador arrendador) throws NegociosException {
        arrendadores.actualizarArrendador(arrendador);
    }

    @Override
    public void eliminarArrendador(objetosNegocio.Arrendador arrendador) throws NegociosException {
        arrendadores.eliminarArrendador(arrendador);
    }

    @Override
    public void eliminarResidente(objetosNegocio.Residente residente) throws NegociosException {
        residentes.eliminarResidente(residente);
    }

    @Override
    public List<objetosNegocio.Arrendador> listaArrendadores() throws NegociosException {
        return arrendadores.listaArrendadores();
    }

    @Override
    public List<objetosNegocio.Residente> listaResidentes() throws NegociosException {
        return residentes.listaResidentes();
    }

    @Override
    public objetosNegocio.Arrendador obtenArrendador(Arrendador arrendador) throws NegociosException {
        return arrendadores.obtenArrendador(arrendador);
    }

    @Override
    public objetosNegocio.Residente obtenResidente(Residente residente) throws NegociosException {
        return residentes.obtenResidente(residente);
    }

    @Override
    public int agregarMetodoPagoResidente(MetodoPago m) throws NegociosException {
        return metodosPago.agregarMetodoPagoResidente(m);
    }

    @Override
    public List<String> listaMetodosPago() throws NegociosException {
        return metodosPago.listaMetodosPago();
    }

    @Override
    public void eliminarMetodoPagoResidente(Residente r) throws NegociosException {
        metodosPago.eliminarMetodoPagoResidente(r);
    }

    @Override
    public String nombreTipoMetodoPago(Residente residente) throws NegociosException {
        return metodosPago.nombreTipoMetodoPago(residente);
    }
    
    @Override
    public MetodoPago obtenerMetodoPago(Residente residente) throws NegociosException {
        return metodosPago.obtenerMetodoPago(residente);
    }

    @Override
    public List<String> listaCiudades(int estado) throws NegociosException {
        return localidades.listaCiudades(estado);
    }

    @Override
    public int obtenerIdCiudad(String name) throws NegociosException {
        return localidades.obtenerIdCiudad(name);
    }

    @Override
    public String obtenerNombreCiudad(int id) throws NegociosException {
        return localidades.obtenerNombreCiudad(id);
    }
    
    @Override
    public List<String> listaEstados(int pais) throws NegociosException {
        return localidades.listaEstados(pais);
    }

    @Override
    public int obtenerIdEstado(String name) throws NegociosException {
        return localidades.obtenerIdEstado(name);
    }

    @Override
    public String obtenerNombreEstado(int id) throws NegociosException {
        return localidades.obtenerNombreEstado(id);
    }
    
    @Override
    public List<String> listaPaises() throws NegociosException {
        return localidades.listaPaises();
    }

    @Override
    public int obtenerIdPais(String name) throws NegociosException {
        return localidades.obtenerIdPais(name);
    }

    @Override
    public String obtenerPais(int id) throws NegociosException {
        return localidades.obtenerPais(id);
    }

    @Override
    public List<String> listaProfesiones() throws NegociosException {
        return prof.listaCarreras();
    }

    @Override
    public int obtenerIdProfesion(String name) throws NegociosException {
        return prof.obtenerIdProfesion(name);
    }

    @Override
    public String obtenerNombreProfesion(int index) throws NegociosException {
        return prof.obtenerNombreProfesion(index);
    }
    @Override
    public void agregarHorario(Residente r, String rutaHorario) throws NegociosException {
        this.residentes.agregarHorario(r, rutaHorario);
    }
    @Override
    public void agregarPerfil(Residente r, String rutaFoto) throws NegociosException {
        this.residentes.agregarPerfil(r, rutaFoto);
    }

    @Override
    public String obtenHorario(Residente r) throws NegociosException {
        return residentes.obtenHorario(r);
    }

    @Override
    public String obtenPerfil(Residente r) throws NegociosException {
        return residentes.obtenPerfil(r);
    }
    
    
}
